Parameterized Aspect Calculus: A Core Calculus for the Direct Study of Aspect-Oriented Languages
نویسندگان
چکیده
Formal study of aspect-oriented languages is difficult because current theoretical models provide a range of features that is too limited and rely on encodings using lower-level abstractions, which involve a cumbersome level of indirection. We present a calculus, based on Abadi and Cardelli’s object calculus, that explicitly models a base language and a variety of point cut description languages. This explicit modeling makes clear the aspect-oriented features of the calculus by removing the indirection of some existing models. We demonstrate the generality of our calculus by presenting models for AspectJ’s open classes and advice, and HyperJ’s compositions, and sketching a model for DemeterJ’s adaptive methods.
منابع مشابه
A Type System and Type Soundness for the Calculus of Aspect-Oriented Programming Languages
The formal study of class of functional and procedure-oriented programming languages is well-defined and uses λ-calculus as the main tool. With the advent of object calculi, the formal study of object-oriented programming languages is also well developed and understood. Since the paradigm of aspect-oriented programming is new, formal theory for the same is under development. The proposed untype...
متن کاملA Machine Model for Aspect-Oriented Programming
Aspect-oriented programming languages usually are extensions of object-oriented ones, and their compilation target is usually the (virtual) machine model of the language they extend. While that model elegantly supports core object-oriented language mechanisms such as virtual method dispatch, it provides no direct support for core aspectoriented language mechanisms such as advice application. He...
متن کاملMiniMAO: Investigating the Semantics of Proceed
This paper describes the semantics of MiniMAO1, a core aspectoriented calculus. Unlike previous aspect-oriented calculi, it allows around advice to change the target object of an advised operation before proceeding. MiniMAO1 accurately models the ways AspectJ allows changing the target object, e.g., at call join points. Practical uses for changing the target object using advice include proxies ...
متن کاملA Calculus of Untyped Aspect-Oriented Programs
Aspects have emerged as a powerful tool in the design and development of systems, allowing for the encapsulation of program transformations. The dynamic semantics of aspects is typically specified by appealing to an underlying object-oriented language via a compiler transformation known as weaving. This treatment is unsatisfactory for several reasons. Firstly, this semantics violates basic modu...
متن کاملµABC: A Minimal Aspect Calculus
Aspect-oriented programming is emerging as a powerful tool for system design and development. In this paper, we study aspects as primitive computational entities on par with objects, functions and horn-clauses. To this end, we introduce μABC, a name-based calculus, that incorporates aspects as primitive. In contrast to earlier work on aspects in the context of object-oriented and functional pro...
متن کامل